/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.einstein.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author Tobe
 */
@Entity
@Table(name = "movimientomaestro")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Movimientomaestro.findAll", query = "SELECT m FROM Movimientomaestro m"),
    @NamedQuery(name = "Movimientomaestro.findByCodTipo", query = "SELECT m FROM Movimientomaestro m WHERE m.movimientomaestroPK.codTipo = :codTipo"),
    @NamedQuery(name = "Movimientomaestro.findByNumDoc", query = "SELECT m FROM Movimientomaestro m WHERE m.movimientomaestroPK.numDoc = :numDoc"),
    @NamedQuery(name = "Movimientomaestro.findByAnoProc", query = "SELECT m FROM Movimientomaestro m WHERE m.anoProc = :anoProc"),
    @NamedQuery(name = "Movimientomaestro.findByBruto", query = "SELECT m FROM Movimientomaestro m WHERE m.bruto = :bruto"),
    @NamedQuery(name = "Movimientomaestro.findByBrutoEx", query = "SELECT m FROM Movimientomaestro m WHERE m.brutoEx = :brutoEx"),
    @NamedQuery(name = "Movimientomaestro.findByBrutoGr", query = "SELECT m FROM Movimientomaestro m WHERE m.brutoGr = :brutoGr"),
    @NamedQuery(name = "Movimientomaestro.findByCambio", query = "SELECT m FROM Movimientomaestro m WHERE m.cambio = :cambio"),
    @NamedQuery(name = "Movimientomaestro.findByChofer", query = "SELECT m FROM Movimientomaestro m WHERE m.chofer = :chofer"),
    @NamedQuery(name = "Movimientomaestro.findByCiaCxp", query = "SELECT m FROM Movimientomaestro m WHERE m.ciaCxp = :ciaCxp"),
    @NamedQuery(name = "Movimientomaestro.findByCiaFac", query = "SELECT m FROM Movimientomaestro m WHERE m.ciaFac = :ciaFac"),
    @NamedQuery(name = "Movimientomaestro.findByCodFpag", query = "SELECT m FROM Movimientomaestro m WHERE m.codFpag = :codFpag"),
    @NamedQuery(name = "Movimientomaestro.findByCodProv", query = "SELECT m FROM Movimientomaestro m WHERE m.codProv = :codProv"),
    @NamedQuery(name = "Movimientomaestro.findByCodRuta", query = "SELECT m FROM Movimientomaestro m WHERE m.codRuta = :codRuta"),
    @NamedQuery(name = "Movimientomaestro.findByCodVend", query = "SELECT m FROM Movimientomaestro m WHERE m.codVend = :codVend"),
    @NamedQuery(name = "Movimientomaestro.findByConsecutivo", query = "SELECT m FROM Movimientomaestro m WHERE m.consecutivo = :consecutivo"),
    @NamedQuery(name = "Movimientomaestro.findByCostoE", query = "SELECT m FROM Movimientomaestro m WHERE m.costoE = :costoE"),
    @NamedQuery(name = "Movimientomaestro.findByCostoL", query = "SELECT m FROM Movimientomaestro m WHERE m.costoL = :costoL"),
    @NamedQuery(name = "Movimientomaestro.findByDescuento", query = "SELECT m FROM Movimientomaestro m WHERE m.descuento = :descuento"),
    @NamedQuery(name = "Movimientomaestro.findByDescuentoEx", query = "SELECT m FROM Movimientomaestro m WHERE m.descuentoEx = :descuentoEx"),
    @NamedQuery(name = "Movimientomaestro.findByDescuentoGr", query = "SELECT m FROM Movimientomaestro m WHERE m.descuentoGr = :descuentoGr"),
    @NamedQuery(name = "Movimientomaestro.findByFVence", query = "SELECT m FROM Movimientomaestro m WHERE m.fVence = :fVence"),
    @NamedQuery(name = "Movimientomaestro.findByFecha", query = "SELECT m FROM Movimientomaestro m WHERE m.fecha = :fecha"),
    @NamedQuery(name = "Movimientomaestro.findByFechaDig", query = "SELECT m FROM Movimientomaestro m WHERE m.fechaDig = :fechaDig"),
    @NamedQuery(name = "Movimientomaestro.findByImp1", query = "SELECT m FROM Movimientomaestro m WHERE m.imp1 = :imp1"),
    @NamedQuery(name = "Movimientomaestro.findByImp2", query = "SELECT m FROM Movimientomaestro m WHERE m.imp2 = :imp2"),
    @NamedQuery(name = "Movimientomaestro.findByLoteProd", query = "SELECT m FROM Movimientomaestro m WHERE m.loteProd = :loteProd"),
    @NamedQuery(name = "Movimientomaestro.findByMesProc", query = "SELECT m FROM Movimientomaestro m WHERE m.mesProc = :mesProc"),
    @NamedQuery(name = "Movimientomaestro.findByNaviera", query = "SELECT m FROM Movimientomaestro m WHERE m.naviera = :naviera"),
    @NamedQuery(name = "Movimientomaestro.findByNeto", query = "SELECT m FROM Movimientomaestro m WHERE m.neto = :neto"),
    @NamedQuery(name = "Movimientomaestro.findByNetoEx", query = "SELECT m FROM Movimientomaestro m WHERE m.netoEx = :netoEx"),
    @NamedQuery(name = "Movimientomaestro.findByNetoGr", query = "SELECT m FROM Movimientomaestro m WHERE m.netoGr = :netoGr"),
    @NamedQuery(name = "Movimientomaestro.findByNivelPrecio", query = "SELECT m FROM Movimientomaestro m WHERE m.nivelPrecio = :nivelPrecio"),
    @NamedQuery(name = "Movimientomaestro.findByNotas", query = "SELECT m FROM Movimientomaestro m WHERE m.notas = :notas"),
    @NamedQuery(name = "Movimientomaestro.findByNotas2", query = "SELECT m FROM Movimientomaestro m WHERE m.notas2 = :notas2"),
    @NamedQuery(name = "Movimientomaestro.findByNulo", query = "SELECT m FROM Movimientomaestro m WHERE m.nulo = :nulo"),
    @NamedQuery(name = "Movimientomaestro.findByNumCont", query = "SELECT m FROM Movimientomaestro m WHERE m.numCont = :numCont"),
    @NamedQuery(name = "Movimientomaestro.findByNumMarch", query = "SELECT m FROM Movimientomaestro m WHERE m.numMarch = :numMarch"),
    @NamedQuery(name = "Movimientomaestro.findByNumOrdenCompra", query = "SELECT m FROM Movimientomaestro m WHERE m.numOrdenCompra = :numOrdenCompra"),
    @NamedQuery(name = "Movimientomaestro.findByNumOrdenVenta", query = "SELECT m FROM Movimientomaestro m WHERE m.numOrdenVenta = :numOrdenVenta"),
    @NamedQuery(name = "Movimientomaestro.findByPlaca", query = "SELECT m FROM Movimientomaestro m WHERE m.placa = :placa"),
    @NamedQuery(name = "Movimientomaestro.findByReferencia", query = "SELECT m FROM Movimientomaestro m WHERE m.referencia = :referencia"),
    @NamedQuery(name = "Movimientomaestro.findBySistema", query = "SELECT m FROM Movimientomaestro m WHERE m.sistema = :sistema"),
    @NamedQuery(name = "Movimientomaestro.findByTipoCredito", query = "SELECT m FROM Movimientomaestro m WHERE m.tipoCredito = :tipoCredito"),
    @NamedQuery(name = "Movimientomaestro.findByUsuario", query = "SELECT m FROM Movimientomaestro m WHERE m.usuario = :usuario"),
    @NamedQuery(name = "Movimientomaestro.findByCompaniaId", query = "SELECT m FROM Movimientomaestro m WHERE m.movimientomaestroPK.companiaId = :companiaId")})
public class Movimientomaestro implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected MovimientomaestroPK movimientomaestroPK;
    @Basic(optional = false)
    @NotNull
    @Column(name = "ano_proc")
    private int anoProc;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "bruto")
    private BigDecimal bruto;
    @Column(name = "bruto_ex")
    private BigDecimal brutoEx;
    @Column(name = "bruto_gr")
    private BigDecimal brutoGr;
    @Column(name = "cambio")
    private BigDecimal cambio;
    @Size(max = 255)
    @Column(name = "chofer")
    private String chofer;
    @Size(max = 255)
    @Column(name = "cia_cxp")
    private String ciaCxp;
    @Size(max = 255)
    @Column(name = "cia_fac")
    private String ciaFac;
    @Size(max = 255)
    @Column(name = "cod_fpag")
    private String codFpag;
    @Size(max = 255)
    @Column(name = "cod_prov")
    private String codProv;
    @Size(max = 255)
    @Column(name = "cod_ruta")
    private String codRuta;
    @Size(max = 255)
    @Column(name = "cod_vend")
    private String codVend;
    @Column(name = "consecutivo")
    private BigDecimal consecutivo;
    @Column(name = "costo_e")
    private BigDecimal costoE;
    @Column(name = "costo_l")
    private BigDecimal costoL;
    @Column(name = "descuento")
    private BigDecimal descuento;
    @Column(name = "descuento_ex")
    private BigDecimal descuentoEx;
    @Column(name = "descuento_gr")
    private BigDecimal descuentoGr;
    @Column(name = "f_vence")
    @Temporal(TemporalType.DATE)
    private Date fVence;
    @Column(name = "fecha")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fecha;
    @Column(name = "fecha_dig")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaDig;
    @Column(name = "imp_1")
    private BigDecimal imp1;
    @Column(name = "imp_2")
    private BigDecimal imp2;
    @Size(max = 255)
    @Column(name = "lote_prod")
    private String loteProd;
    @Basic(optional = false)
    @NotNull
    @Column(name = "mes_proc")
    private int mesProc;
    @Size(max = 255)
    @Column(name = "naviera")
    private String naviera;
    @Column(name = "neto")
    private BigDecimal neto;
    @Column(name = "neto_ex")
    private BigDecimal netoEx;
    @Column(name = "neto_gr")
    private BigDecimal netoGr;
    @Size(max = 255)
    @Column(name = "nivel_precio")
    private String nivelPrecio;
    @Size(max = 255)
    @Column(name = "notas")
    private String notas;
    @Size(max = 255)
    @Column(name = "notas2")
    private String notas2;
    @Size(max = 255)
    @Column(name = "nulo")
    private String nulo;
    @Size(max = 255)
    @Column(name = "num_cont")
    private String numCont;
    @Size(max = 255)
    @Column(name = "num_march")
    private String numMarch;
    @Size(max = 255)
    @Column(name = "num_orden_compra")
    private String numOrdenCompra;
    @Size(max = 255)
    @Column(name = "num_orden_venta")
    private String numOrdenVenta;
    @Size(max = 255)
    @Column(name = "placa")
    private String placa;
    @Size(max = 255)
    @Column(name = "referencia")
    private String referencia;
    @Size(max = 255)
    @Column(name = "sistema")
    private String sistema;
    @Size(max = 255)
    @Column(name = "tipo_credito")
    private String tipoCredito;
    @Size(max = 255)
    @Column(name = "usuario")
    private String usuario;
    @JoinColumn(name = "compania_id", referencedColumnName = "id", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Compania compania;

    public Movimientomaestro() {
    }

    public Movimientomaestro(MovimientomaestroPK movimientomaestroPK) {
        this.movimientomaestroPK = movimientomaestroPK;
    }

    public Movimientomaestro(MovimientomaestroPK movimientomaestroPK, int anoProc, int mesProc) {
        this.movimientomaestroPK = movimientomaestroPK;
        this.anoProc = anoProc;
        this.mesProc = mesProc;
    }

    public Movimientomaestro(String codTipo, String numDoc, int companiaId) {
        this.movimientomaestroPK = new MovimientomaestroPK(codTipo, numDoc, companiaId);
    }

    public MovimientomaestroPK getMovimientomaestroPK() {
        return movimientomaestroPK;
    }

    public void setMovimientomaestroPK(MovimientomaestroPK movimientomaestroPK) {
        this.movimientomaestroPK = movimientomaestroPK;
    }

    public int getAnoProc() {
        return anoProc;
    }

    public void setAnoProc(int anoProc) {
        this.anoProc = anoProc;
    }

    public BigDecimal getBruto() {
        return bruto;
    }

    public void setBruto(BigDecimal bruto) {
        this.bruto = bruto;
    }

    public BigDecimal getBrutoEx() {
        return brutoEx;
    }

    public void setBrutoEx(BigDecimal brutoEx) {
        this.brutoEx = brutoEx;
    }

    public BigDecimal getBrutoGr() {
        return brutoGr;
    }

    public void setBrutoGr(BigDecimal brutoGr) {
        this.brutoGr = brutoGr;
    }

    public BigDecimal getCambio() {
        return cambio;
    }

    public void setCambio(BigDecimal cambio) {
        this.cambio = cambio;
    }

    public String getChofer() {
        return chofer;
    }

    public void setChofer(String chofer) {
        this.chofer = chofer;
    }

    public String getCiaCxp() {
        return ciaCxp;
    }

    public void setCiaCxp(String ciaCxp) {
        this.ciaCxp = ciaCxp;
    }

    public String getCiaFac() {
        return ciaFac;
    }

    public void setCiaFac(String ciaFac) {
        this.ciaFac = ciaFac;
    }

    public String getCodFpag() {
        return codFpag;
    }

    public void setCodFpag(String codFpag) {
        this.codFpag = codFpag;
    }

    public String getCodProv() {
        return codProv;
    }

    public void setCodProv(String codProv) {
        this.codProv = codProv;
    }

    public String getCodRuta() {
        return codRuta;
    }

    public void setCodRuta(String codRuta) {
        this.codRuta = codRuta;
    }

    public String getCodVend() {
        return codVend;
    }

    public void setCodVend(String codVend) {
        this.codVend = codVend;
    }

    public BigDecimal getConsecutivo() {
        return consecutivo;
    }

    public void setConsecutivo(BigDecimal consecutivo) {
        this.consecutivo = consecutivo;
    }

    public BigDecimal getCostoE() {
        return costoE;
    }

    public void setCostoE(BigDecimal costoE) {
        this.costoE = costoE;
    }

    public BigDecimal getCostoL() {
        return costoL;
    }

    public void setCostoL(BigDecimal costoL) {
        this.costoL = costoL;
    }

    public BigDecimal getDescuento() {
        return descuento;
    }

    public void setDescuento(BigDecimal descuento) {
        this.descuento = descuento;
    }

    public BigDecimal getDescuentoEx() {
        return descuentoEx;
    }

    public void setDescuentoEx(BigDecimal descuentoEx) {
        this.descuentoEx = descuentoEx;
    }

    public BigDecimal getDescuentoGr() {
        return descuentoGr;
    }

    public void setDescuentoGr(BigDecimal descuentoGr) {
        this.descuentoGr = descuentoGr;
    }

    public Date getFVence() {
        return fVence;
    }

    public void setFVence(Date fVence) {
        this.fVence = fVence;
    }

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public Date getFechaDig() {
        return fechaDig;
    }

    public void setFechaDig(Date fechaDig) {
        this.fechaDig = fechaDig;
    }

    public BigDecimal getImp1() {
        return imp1;
    }

    public void setImp1(BigDecimal imp1) {
        this.imp1 = imp1;
    }

    public BigDecimal getImp2() {
        return imp2;
    }

    public void setImp2(BigDecimal imp2) {
        this.imp2 = imp2;
    }

    public String getLoteProd() {
        return loteProd;
    }

    public void setLoteProd(String loteProd) {
        this.loteProd = loteProd;
    }

    public int getMesProc() {
        return mesProc;
    }

    public void setMesProc(int mesProc) {
        this.mesProc = mesProc;
    }

    public String getNaviera() {
        return naviera;
    }

    public void setNaviera(String naviera) {
        this.naviera = naviera;
    }

    public BigDecimal getNeto() {
        return neto;
    }

    public void setNeto(BigDecimal neto) {
        this.neto = neto;
    }

    public BigDecimal getNetoEx() {
        return netoEx;
    }

    public void setNetoEx(BigDecimal netoEx) {
        this.netoEx = netoEx;
    }

    public BigDecimal getNetoGr() {
        return netoGr;
    }

    public void setNetoGr(BigDecimal netoGr) {
        this.netoGr = netoGr;
    }

    public String getNivelPrecio() {
        return nivelPrecio;
    }

    public void setNivelPrecio(String nivelPrecio) {
        this.nivelPrecio = nivelPrecio;
    }

    public String getNotas() {
        return notas;
    }

    public void setNotas(String notas) {
        this.notas = notas;
    }

    public String getNotas2() {
        return notas2;
    }

    public void setNotas2(String notas2) {
        this.notas2 = notas2;
    }

    public String getNulo() {
        return nulo;
    }

    public void setNulo(String nulo) {
        this.nulo = nulo;
    }

    public String getNumCont() {
        return numCont;
    }

    public void setNumCont(String numCont) {
        this.numCont = numCont;
    }

    public String getNumMarch() {
        return numMarch;
    }

    public void setNumMarch(String numMarch) {
        this.numMarch = numMarch;
    }

    public String getNumOrdenCompra() {
        return numOrdenCompra;
    }

    public void setNumOrdenCompra(String numOrdenCompra) {
        this.numOrdenCompra = numOrdenCompra;
    }

    public String getNumOrdenVenta() {
        return numOrdenVenta;
    }

    public void setNumOrdenVenta(String numOrdenVenta) {
        this.numOrdenVenta = numOrdenVenta;
    }

    public String getPlaca() {
        return placa;
    }

    public void setPlaca(String placa) {
        this.placa = placa;
    }

    public String getReferencia() {
        return referencia;
    }

    public void setReferencia(String referencia) {
        this.referencia = referencia;
    }

    public String getSistema() {
        return sistema;
    }

    public void setSistema(String sistema) {
        this.sistema = sistema;
    }

    public String getTipoCredito() {
        return tipoCredito;
    }

    public void setTipoCredito(String tipoCredito) {
        this.tipoCredito = tipoCredito;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public Compania getCompania() {
        return compania;
    }

    public void setCompania(Compania compania) {
        this.compania = compania;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (movimientomaestroPK != null ? movimientomaestroPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Movimientomaestro)) {
            return false;
        }
        Movimientomaestro other = (Movimientomaestro) object;
        if ((this.movimientomaestroPK == null && other.movimientomaestroPK != null) || (this.movimientomaestroPK != null && !this.movimientomaestroPK.equals(other.movimientomaestroPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.tesla.domain.Movimientomaestro[ movimientomaestroPK=" + movimientomaestroPK + " ]";
    }
    
}
